Exemplary embodiments pertain to the art of programmable device security, and particularly, to Joint Test Action Group (JTAG) lockout for embedded processor programming in a programmable device.
The Institute of Electrical and Electronics Engineers (IEEE) provides industry Standard IEEE1149.1, commonly referred to as JTAG (which stands for Joint Test Action Group) communication. This standard details an industry set of commands that allow the JTAG user to read, modify, upload and download the program loaded into a programmable device. This access is a method for programming devices during production. For example, field programmable gate arrays (FPGAs), complex programmable logic device (CPLDs), memory devices, and many other types of processors can implement JTAG communication. Along with this capability comes the risk of undesired and/or malicious access to the programmable devices. Closed box access provided through JTAG (i.e., connecting to the device without directly accessing the physical programmable device itself) gives direct access to the control logic on the device with the ability to intentionally copy, or maliciously modify the operation of the device. Current JTAG security designs use complex encryption methodologies that require significant configuration control, key management, and complex testing rigs.